package com.yss.reportworld.domain.kettle;


import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yss.common.core.annotation.EasyExcel;
import com.yss.common.core.annotation.ExcelValid;
import com.yss.common.core.utils.easyexecl.IntegerConverter;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * ETL资源注册对象 rw_db_etl_resource
 *
 * @author yss
 * @date 2023-07-14
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("rw_db_etl_resource")
public class EtlResource extends Model<EtlResource> {
    public static final String SHEET_NAME = "资源列表";
    /**
     * 技术主键
     */
    @ExcelIgnore
    @TableId("ID")
    private String id;

    /**
     * 资源英文名
     */
    @ExcelProperty( "英文名")
    @TableField("ENAME")
    @ExcelValid(message = "【资源列表】【英文名】不能为空")
    private String ename;

    /**
     * 资源中文名
     */
    @ExcelProperty( "中文名")
    @TableField("CNAME")
    @ExcelValid(message = "【资源列表】【中文名】不能为空")
    private String cname;

    /**
     * 资源分类ID
     */
    @ExcelIgnore
    @TableField("TYPE_ID")
    private String typeId;

    @ExcelProperty( "分类")
    @TableField(exist = false)
    @ExcelValid(message = "【资源列表】【分类】不能为空")
    private String resourceName;

    /**
     * 资源类型（1：表 2：文件 3：临时表 4：报表 5：外部资源）
     */
    @ExcelProperty(value = "类型", converter = IntegerConverter.class)
    @EasyExcel(readConverterExp = "1=表,2=文件,3=临时表,4=报表,5=外部表,6=备份表,7=外部视图,8=视图,9=Http请求")
    @TableField("TYPE")
    @ExcelValid(message = "【资源列表】【类型】不能为空")
    private Integer type;

    /**
     * 作业层级ID
     */
    @ExcelIgnore
    @TableField("LEVEL_ID")
    private String levelId;

    @ExcelProperty( "层级")
    @TableField(exist = false)
    @ExcelValid(message = "【资源列表】【层级】不能为空")
    private String levelName;
    /**
     * 数据源
     */
    @ExcelProperty( "数据源")
    @TableField("DS_SOURCE")
    @ExcelValid(message = "【资源列表】【数据源】不能为空")
    private String dsSource;

    @ExcelProperty( "业务标签")
    @TableField(exist = false)
    private String labelName;

    /**
     * 用户schema
     */
    @ExcelProperty( "用户schema")
    @TableField("USER_SCHEMA")
    private String userSchema;
    /**
     * 查询配置（JSON）;包含显示字段列和查询条件
     */
    @ExcelProperty( "查询配置")
    @TableField("QUERY_SETTING")
    private String querySetting;

    /**
     * 备注
     */
    @ExcelProperty( "备注")
    @TableField("REMARK")
    private String remark;

    /**
     * 状态 1启用 0禁用
     */
    @ExcelProperty(value = "状态", converter = IntegerConverter.class)
    @EasyExcel(readConverterExp = "0=无效,1=正常")
    @TableField("STATUS")
    @ExcelValid(message = "【资源列表】【状态】不能为空")
    private Integer status;


    /**
     * 获取目表资源和来源资源传递的参数jobID
     */
    @ExcelIgnore
    @TableField(exist = false)
    private String jobId;

    /**
     * 数据编码
     */
    @ExcelIgnore
    @TableField("RW_DB_ID")
    private String rwDbId;

}
